use gpui::*;

struct HelloWorld {
    text: SharedString,
}

impl Render for HelloWorld {
    fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {

        div()
            .bg(rgb(0xffffff))
            .flex()
            .flex_col()
            .justify_center()
            .items_center()
            .size_full()
            .gap_1()
            .child(
                div()
                    .w_auto()
                    .h_8()
                    .bg(rgb(0x333333))
                    .flex()
                    .justify_center()
                    .items_center()
                    .rounded(px(4.))
                    .text_color(rgb(0xffffff))
                    .child("Hello World!"),
            )
            .child(
                div()
                    .bg(rgb(0x2e7d32))
                    .w_20()
                    .h_8()
                    .flex()
                    .justify_center()
                    .items_center()
                    .rounded(px(4.))
                    .text_color(rgb(0xffffff))
                    .child("Button")
                    .on_mouse_down(MouseButton::Left, |_evt, cx| {
                        println!("clicked");

                    }),
            )
        // div()
        //     .flex()
        //     .bg(rgb(0x2e7d32))
        //     .size_full()
        //     //.size(Length::Definite(Pixels(300.0).into()))
        //     .justify_center()
        //     .items_center()
        //     .shadow_lg()
        //     //.border()
        //     //.border_color(rgb(0x0000ff))
        //     .text_xl()
        //     .text_color(rgb(0xffffff))
        //     .p_4()
        //     .child(
        //         div()
        //          .flex()
        //          .justify_center()
        //          .items_center()
        //          .bg(rgb(0xf00000))
        //          .size_full()
        //          .p_4()
        //          //.rounded(px(4.))
        //          .child(
        //             div()
        //               .flex()
        //               .justify_center()
        //               .items_center()
        //               .bg(rgb(0x333333))
        //               .size_full()
        //               .child(
        //                 format!("Hello, {}!", &self.text))
        //               )
        //          )
    }
}

fn main() {
    App::new().run(|cx: &mut AppContext| {

        let mut options = WindowOptions::default();

        options.bounds = WindowBounds::Fixed(Bounds {
            origin: Point::new(GlobalPixels::from(0.0), GlobalPixels::from(0.0)),
            size: Size {
                width: GlobalPixels::from(300.0),
                height: GlobalPixels::from(300.0),
            },
        });

        options.kind = WindowKind::PopUp;

        cx.open_window(options, |cx| {
            cx.new_view(|_cx| HelloWorld { text: "Magic".into() })
        });
    });
}
